import axios from 'axios'
import Vue from 'vue'
 
// 一些请求的基本配置

export  default function request(url, data = {}, type = "GET") {
    return new Promise(function (resolve, reject) {
        // 执行异步ajax请求
        let promise
        // 准备url query数据
        if (type == "get") {
            let dataStr = "" //数据拼接字符串
            Object.keys(data).forEach(function (e, i, a) {
                dataStr += e + '=' + data[e] + '&'
            })
            if (dataStr !== "") {
                dataStr = dataStr.substring(0, dataStr.lastIndexOf("&"))
                url = url + '?' + dataStr
                // 发送get请求
                promise = axios.get(url)
            }
        }else {
            console.log("post........"+ data)
            promise = axios.post(url, data)
        }
        promise.then(function (response) {
            // 成功调用resolve()
            console.log(response.data)
            if(!response || !response.data){
                Vue.prototype.$message({
                    message: '出现异常',
                    type: 'error'
                });
            }else if(!response.data.code || response.data.code!='00000000'){
                Vue.prototype.$message({
                    message: response.data.msg,
                    type: 'error'
                });
            }
            resolve(response.data)
        }).catch(function (error) {
        // 失败调用reject()
            Vue.prototype.$message({
                message: '网络异常',
                type: 'error'
            });
            reject(error)
        })
    });
}
  





// // 输出方法
// export default function request(url, data = {}, method = 'post') {
//     console.log("url:"+url+ " method:"+ method);
//   return new Promise((resolve, reject) => {
//     const options = {
//       url,
//       method
//     }
//     if (method.toLowerCase() === 'get') {
//       options.params = data
//     } else {
//       options.data = data
//     }
//     service(options)
//       .then(res => {
//         console.log('返回数据', res)
//         resolve(res.data)
//       })
//       .catch(error => {
//         reject()
//         console.error(error)
//       })
//   })
// }